\section{TeX文档内容}

\subsection{如何添加段落}
简单的说，空格用来分割单词，空行用来分割段落。

\subsection{如何输出特殊符号}
1、TeX文件是纯文本文件，其中对空格的处理类似于HTML，多个空格      只认一个。
\begin{lstlisting}
多个空格      只认一个。
\end{lstlisting}

2、TeX中的特殊字符
\# \$ \% \^{} \& \_ \{ \} \~{} $\backslash$
\begin{lstlisting}
\# \$ \% \^{} \& \_ \{ \} \~{} $\backslash$
\end{lstlisting}

在输出这些符号时，需要添加额外的转义符号，通常为反斜线“\textbackslash”。(要输出反斜线，请使用命令\$$\backslash$backslash\$，或者\textbackslash{textbackslash});

\textbackslash \textbackslash 用来作为另起一行的快捷命令。

使用\$*\$输出$*$

TeX命令与空白符

\TeX{} ignores whitespace after commands. If you want to get a space
after a command, you have to put either \{\} and a blank or a special spacing
command after the command name.

\subsection{如何在TeX中添加注释}
行注释，使用\%;

\subsection{如何设置章节}
章节只有在文档类型为书籍时，才可正常使用。
\begin{lstlisting}
\documentclass{book}
\chapter{LaTeX入门}
\end{lstlisting}

\subsection{如何设置小节标题}
使用$\backslash$section\{如何设置节标题\}。
\begin{lstlisting}
\section{如何设置节标题}
\subsection{使用网络安装向导安装TeX}
\end{lstlisting}

\subsection{如何让指定的小节标题不出现在目录中}
\begin{lstlisting}
\section*{如何设置节标题}
\subsection*{使用网络安装向导安装TeX}
\end{lstlisting}

\subsection{如何添加列表}
\begin{lstlisting}
\begin{itemize}
	\item {项目1}
	\item {项目2}
\end{itemize}
\end{lstlisting}

\subsection{如何添加有序列表}
有序列表是指有数字序号的列表。
\begin{lstlisting}
\begin{enumerate}
  \item ddd
  \item eee
\end{enumerate}
\end{lstlisting}

\subsection{如何添加自定义列表}
\begin{lstlisting}
\begin{description}
  \item[ddd] ddd's description
\end{description}
\end{lstlisting}

\subsection{如何在\TeX{}中输出代码区块}
使用Listings扩展包，可为\TeX{}文档添加漂亮整洁的代码区块。
\begin{lstlisting}
\usepackage{listings}
\title{\LaTeX{}学习笔记}
\author{杨志宏}
\date{2014-06-27}
\maketitle
\end{lstlisting}

\subsection{如何在TeX中添加脚注}
使用命令footnote可以在页末添加脚注。
\begin{lstlisting}
增加了对Unicode\footnote{万国码、国际码、统一码、单一码，是计算机科学领域里的一项业界标准。}字符集的支持。
\end{lstlisting}

\subsection{如何添加超链接}
在导言区载入hyperref宏包，会自动建立目录、脚注和参考文献的内部超级链接。
\begin{lstlisting}
% 载入超级链接包，以方便在文本中建立超级链接
\usepackage{hyperref}
\end{lstlisting}

如果要某段文字建立超级链接，就像这样\href{http://zh.wikipedia.org/wiki/Unicode}{Unicode}。
\begin{lstlisting}
就像这样\href{http://zh.wikipedia.org/wiki/Unicode}{Unicode}
\end{lstlisting}

另外，如果安装了hyperrf宏包的话，还可以使用url命令来输出URL地址。
\begin{lstlisting}
首先到\url{http://www.ctan.org/tex-archive/support/excel2latex/}下载Excel宏插件，
\end{lstlisting}

\subsection{如何生成页眉页脚}
在\LaTeX{}中预设了四种页眉页脚的样式，分别是empty、plain、headings和myheadings。若要使用用自定义页眉页脚, 一般都要使用宏包fancyhdr。
\begin{lstlisting}
	% 载入页眉页脚包
	\usepackage{fancyhdr}

	% 设置页眉页脚格式
	\fancyhf{}
	\fancyhead[LE]{\LaTeX{}学习笔记}
	\fancyhead[RO]{\LaTeX{}学习笔记}
	\fancyfoot[LE,RO]{\thepage}
	\pagestyle{fancy}
\end{lstlisting}

\subsection{如何添加参考文献}
最简单的例子如下：
\begin{lstlisting}
	\documentclass{article}
	\begin{document}
		\section*{Recommended texts}
		To study \TeX\ in depth, see \cite{DK86}. For writing math texts,
		see \cite{DK89}.
		\begin{thebibliography}{8}
		\bibitem{DK86} D.E. Knuth, \emph{The {\TeX}book}, 1986
		\bibitem{DK89} D.E. Knuth, \emph{Typesetting Concrete	Mathematics}, 1989
		\end{thebibliography}
	\end{document}
\end{lstlisting}
在上面的例子中，我们将参考文献写在了文档内部。不过更好的策略是将参考文献数据库以单独的文件存放，以方便不同的文档引用。如要引用yangjh.bib\cite{2013-孟小峰，慈祥-p146-169}中的资料，则需要在导言区加入
\begin{lstlisting}
\bibliographystyle{plain}
\end{lstlisting}
然后在需要引用的地方使用命令
\begin{lstlisting}
\cite{yangjh}
\end{lstlisting}
再在需要显示参考文献的地方使用命令
\begin{lstlisting}
\bibliography{yangjh}
\end{lstlisting}
然后手工将tex编译成pdf（需要进行四次编译），具体如下
\begin{lstlisting}
xelatex xxx.tex
bibtex xxx.aux
xelatex xxx.tex
xelatex xxx.tex
\end{lstlisting}

\subsection{如何在目录前面插入诸如序言、前言、再版序言之类的内容}

对于book或者ctexbook类，可以把全书划分为正文前的资料（frontmatter）、正文的主要部分（mainmatter）、附录（appendix｝和后面的附加材料（backmatter）。
\begin{lstlisting}
\documentclass{ctexbook}
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter
\include{introduction}
\include{theory-and-research}
\include{select-a-topic-and-literature-review}
\include{research-design}
\appendix
\include{附录文件}
\backmatter
\bibliography{../bib/yangjh}
\end{document}
\end{lstlisting}

\subsection{如何将excel的表格转入到lex文件中}

首先到\url{http://www.ctan.org/tex-archive/support/excel2latex/}下载Excel宏插件，在Excel中调整宏安全级别以便安装宏。（为了方便，可以直接放在Excel加载项中）。

然后在Excel中画表，再将表格转入到lex中。

需要指出的是，在Latex中需要包含两个库multirow、booktabs。

% Table generated by Excel2LaTeX from sheet 'Sheet1'
\begin{table}
  \caption{caption}
    \begin{tabular}{rrr}
    \toprule
    测试表格  & 测试表格  & 测试表格 \\
    \midrule
    测试表格  & 测试表格  & 测试表格 \\
    测试表格  & 测试表格  & 测试表格 \\
    测试表格  & 测试表格  & 测试表格 \\
    测试表格  & 测试表格  & 测试表格 \\
    \bottomrule
    \end{tabular}%
  \label{tab:测试表格}%
\end{table}%

\subsection{如何建立交叉引用}

交叉引用的使用可以分成两个部分：先定义标签，再引用标签。定义标签是在适当的地方给对象加一个标签label。引用标签则是在文档的另外一个地方，以利用已有的标签获得对象的信息（ref和pageref）。如表\ref{tab:测试表格}。

\begin{lstlisting}
\begin{table}[htbp]
  \centering
  \caption{从Excel中转入的表格}
    \begin{tabular}{rrr}
    \toprule
    测试表格  & 测试表格  & 测试表格 \\
    \midrule
    测试表格  & 测试表格  & 测试表格 \\
    测试表格  & 测试表格  & 测试表格 \\
    测试表格  & 测试表格  & 测试表格 \\
    测试表格  & 测试表格  & 测试表格 \\
    \bottomrule
    \end{tabular}%
  \label{tab:测试表格}%
\end{table}%

如引用测试表格（\ref{tab:测试表格}）。
\end{lstlisting}

\subsection{如何在表格中输入方括号}
方括号在表格tabular中表示参数，直接使用的时候会出错，解决的办法是把[]放进\{\}即可
\begin{lstlisting}
{[……]}   & 字符组     & 匹配单个列出的字符，可以使用连字符表示范围 \\
\end{lstlisting}

\subsection{如何引入外部独立的代码文件}
在写作时，有时候需要将外部的代码文件作为演示内容引入到文档中，使用lstinputlisting命令即可，如
\begin{lstlisting}
 \lstinputlisting{../css/main.css}
\end{lstlisting}

\subsection{如何插入外部图片}
用矢量制图软件制作图片，另存为eps或pdf，然后将文件插入即可。其中eps格式最为方便。
\begin{lstlisting}
    \begin{figure}
      \centering
      \includegraphics[width=120mm]{fig.pdf}\\
      \caption{System environment.}
      \label{fig:env}
    \end{figure}
\end{lstlisting}

\subsection{如何将引入外部独立的章节文件}
处理较大的文件，一个有效的方法是把它分成几个部分，然后分别导入。

\begin{lstlisting}
\input{filename1}
\input{filename2}
\end{lstlisting}

另一个常用的导入命令是：

\begin{lstlisting}
\include{filename1}
\include{filename2}
\end{lstlisting}

区别在于：
\begin{enumerate}
  \item include 时总是开始新的一页， input 连续不分页。
  \item include命令，不能递归调用，input命令可以。
\end{enumerate}

\subsection{如何在生成的PDF文件中嵌入所用的字体}
用latex生成pdf以后，将该pdf用foxit reader pdf printer 再打印一次，在该虚拟打印机的首选项中，选择嵌入所有字体后打印。

\subsection{如何插入水印}
有时候，需要在文件中插入水印表明文档尚处于草稿阶段，这时可使用backgroud宏包，例如：
\begin{lstlisting}
\usepackage{background}
\backgroundsetup{contents=Draft,color=blue,opacity=0.05}
\end{lstlisting}

\subsection{如何在章节前插入格言}
插入格言，需要引入epigraph宏包，然后进行必要的设置，如：
\begin{lstlisting}
\usepackage{epigraph}
\setlength{\epigraphwidth}{8cm}
……
\chapter{正则表达式}
……
\epigraphhead[60]{\epigraph{所谓幸福，就是尽情地施展我们掌握的技能，等待期望的结果。}{\textit{亚里士多德}}}
\end{lstlisting}

\subsection{如何引入导言} % (fold)
\label{sub:如何引入导言}
引入外部导言区文件时，文件名最好保存为preamble.tex，以免不必要的麻烦。

\subsection{如何添加索引} % (fold)
\label{sub:如何添加索引}
添加索引需要做以下几件事：
\begin{enumerate}
  \item 在导言区使用\textbackslash{makeindex}命令，开启索引文件输出；
  \item 在导言区调用makeidx宏包，开始索引列表排版功能；
  \item 在正文中需要索引的关键字处使用\textbackslash{index}命令，生成索引项目；
  \item 在需要生成索引的地方，使用\textbackslash{printindex}命令，实际输出处理好的索引列表。

  要生成索引需要多次编译和外部工具makeindex的配合，编译带索引的文件foo.tex需要使用如下命令：

  \begin{lstlisting}
  xelatex foo
  makeindex foo
  xelatex foo
  \end{lstlisting}


\end{enumerate}
% subsection 如何添加索引 (end)
% subsection 如何引入导言 (end)
